"""
豆瓣电影排行页面下载：
分析：
请求接口：
request-url:'https://movie.douban.com/j/new_search_subjects?sort=S&range=0,10&tags=%E7%94%B5%E8%A7%86%E5%89%A7,%E7%BB%8F%E5%85%B8
&start=0&genres=%E5%8A%A8%E4%BD%9C&countries=%E6%AC%A7%E7%BE%8E&year_range=2020,2020'

data={
	'sort':'s',
	'range':0, 10,  # 评分区间
	'tags':'经典，电视剧', # 影视特色，形式
	'start':'0',
	'genres':'动作',  # 类型
	'countries':'欧美',  # 地区
	'year_range':'2010,2020',  #年代
}
为空时，表示全部，不区分

"""

from urllib.request import urlopen, Request
from urllib.parse import urlencode

# api 接口
get_url = 'https://movie.douban.com/j/new_search_subjects?'

# headers 请求头
headers = {
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
	'Referer': 'https://movie.douban.com/tag/',
	'Host': 'movie.douban.com'
}


def douban_movies():
	ranges = input('请输入影视的评分区间，满分10分，最低0分（如：1,10），符号为英文状态:')
	tags = input('请输入影视的特色(经典,青春,文艺,搞笑,励志,魔幻)和影视类型(电影,电视剧,综艺,动漫，纪录片)，如果选择一个(,电影)或(经典,)直接空格表示查找所有：')
	genres = input('请输入影视的类型(剧情,喜剧,动作,爱情,科幻,动画...)，直接空格表示全部类型：')
	countries = input('请输入影视所属国家(中国大陆,欧美),直接空格表示所有地区：')

	if ranges == '':
		ranges = '1,10'
	# get 请求，数据
	data = {
		'sort': 's',
		'range': ranges,  # 评分区间
		'tags': tags,  # 影视特色，形式
		'start': '0',
		'genres': genres,  # 类型
		'countries': countries,  # 地区
		# 'year_range': year_range,  # 年代
	}

	# 将 api接口 和 data 拼接
	# 因为是 get 请求，所以不用使用 encode() 编码
	request = Request(url=(get_url + urlencode(data)), headers=headers)

	# 向服务器发送请求
	response = urlopen(url=request)

	# 读取响应数据
	response_data = response.read().decode('utf-8')

	# 将数据写入到相应文件中
	# 保存类型为 JSON 数据
	filename = 'doubanmovie/{1},{2}.json'.format(countries, tags, genres)
	with open(filename, 'wb') as file:
		file.write(response_data.encode('utf-8'))


# print(response_data)


if __name__ == '__main__':
	douban_movies()
